﻿using System.ComponentModel.DataAnnotations;
using Abp.Application.Services.Dto;
using Hicap.AuthorizationServer.Core.Models.Other;

namespace Hicap.AuthorizationServer.Application.Dto
{
    public class UserEditDto : FullAuditedEntityDto<int?>
    {/// <summary>
     /// 用户id(唯一)
     /// </summary>
        [Required]
        [StringLength(EntityLengthConst.ShortCode)]
        public string UserCode { get; set; }

        /// <summary>
        /// 用户名(别名，可与id相同)
        /// </summary>
        [Required]
        [StringLength(EntityLengthConst.ShortName)]
        public string UserName { get; set; }

        /// <summary>
        /// 用户真实姓名
        /// </summary>
        [StringLength(EntityLengthConst.ShortName)]
        public string UserRealName { get; set; }

        /// <summary>
        /// 用户备注、说明
        /// </summary>
        [StringLength(EntityLengthConst.Describe)]
        public string UserRemarks { get; set; }

        /// <summary>
        /// 当前密码
        /// </summary>
        /// <remarks>
        ///     近三次密码不能相同(管理员重置不受此限)
        /// </remarks>
        [StringLength(EntityLengthConst.LongCode)]
        public string Password { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [StringLength(EntityLengthConst.Type)]
        public string Gender { get; set; }

        public int? Age { get; set; }

        /// <summary>
        /// 联系方式(联系人、联系电话、联络住址等)
        /// </summary>
        [StringLength(EntityLengthConst.LongName)]
        public string Contact { get; set; }

        public bool IsActive { get; set; }
        public string Email { get; set; }

        /// <summary>
        /// 住址
        /// </summary>
        [StringLength(EntityLengthConst.LongName)]
        public string Address { get; set; }

        /// <summary>
        /// 电话号码1(固定或移动1)
        /// </summary>
        [StringLength(EntityLengthConst.LongCode)]
        public string TelNumber { get; set; }

        /// <summary>
        /// 电话号码2(移动2)
        /// </summary>
        [StringLength(EntityLengthConst.LongCode)]
        public string TelNumberExt { get; set; }

        public int? Level { get; set; }
        public int? Priority { get; set; }

        public int? SubordinateCompanyId { get; set; }
    }
}